package main

import (
    "fmt"
    "net/http"
    "os"
    "path/filepath"
    "github.com/gin-gonic/gin"
)

func main() {
    // 创建 Gin 路由
    r := gin.Default()

    // 创建文件保存目录
    err := createFileDir()
    if err != nil {
        fmt.Printf("创建文件目录失败: %v\n", err)
        return
    }

    // 文件上传接口
    r.POST("/addFile", func(c *gin.Context) {
        // 获取上传的文件
        file, err := c.FormFile("file")
        if err != nil {
            c.JSON(http.StatusBadRequest, gin.H{
                "error": "获取文件失败",
            })
            return
        }

        // 构建保存路径
        dst := filepath.Join("./file", file.Filename)

        // 保存文件
        if err := c.SaveUploadedFile(file, dst); err != nil {
            c.JSON(http.StatusInternalServerError, gin.H{
                "error": "保存文件失败",
            })
            return
        }

        c.JSON(http.StatusOK, gin.H{
            "message": "文件上传成功",
            "filename": file.Filename,
        })
    })

    // hello 接口
    r.GET("/hello", func(c *gin.Context) {
        c.String(http.StatusOK, "hello")
    })

    // 启动服务器，监听 8090 端口
    r.Run(":8090")
}

// 创建文件保存目录
func createFileDir() error {
    return os.MkdirAll("./file", 0755)
}
